I'm happy to say that our migration from R5 to version 6.5 went smoothly. In retrospect, I've got a few things to add to my earlier comments about what to look for before you upgrade:
* My initial plan included using DDSearch to find obsoleted bits of code, but it didn't occur to me that databases with hidden designs or code that %Includes LSS files wouldn't be searchable. As always, nothing beats a healthy dose of testing.
* I found a Notes/Domino 6 Migration Knowledge Collection in the Lotus Knowledgebase that has a few extra things to watch out for --
http://www-1.ibm.com/support/docview.wss?rs=475&context=SSKTWP&uid=swg21113048&loc=en_US&cs=utf-8&lang=en
* I also found a technote describing a problem with uploads greater than 10 MB --
http://www-1.ibm.com/support/docview.wss?rs=463&context=SSKTMJ&uid=swg21096111&loc=en_US&cs=utf-8&lang=en
* In ND6, the permissions of the signer of a script library will filter down to agents that use that script library, so make sure that you have everything signed properly.
* And the biggest gotcha of all: beware the new security settings that restrict agent operations. By default, the runtime security level on some agents seemed to be set to "1. Do not allow restricted operations", which caused some scheduled agents to fail. After resetting the runtime security level to "2. Allow restricted operations", they worked fine. One thing I noticed though is that the CreateObject and GetObject functions seem to be restricted operations, although they are not listed as such in the Notes Help. For reference, see:
http://www-12.lotus.com/ldd/doc/domino_notes/6.5/help65_designer.nsf/0/ec288ebfaf54fd7b85256d9b0042f05b?OpenDocument
and
http://www-12.lotus.com/ldd/doc/domino_notes/6.5/help65_designer.nsf/0/ee10397697892fa285256d9b0042f1a0?OpenDocument
As I said, the biggest thing to watch out for after you migrate to ND6 and higher is probably the agent runtime security, because your agents can fail somewhat silently if this isn't set properly in ND6 and 6.5. All you'll see is that the agents don't seem to be running, and there might be some errors like this in the Console Log:
Error 201: Operation is disallowed in this session
Programmer that I am, when I discovered this, I knew I had to write an agent that checks the runtime security settings. So I wrote a LotusScript agent that checks all the agents in all the databases on a server (the ones you have access to, anyway) and spits out a comma-delimited file with information about the $Restricted field for the agents ($Restricted = 1 is level 1, $Restricted = 0 is level 2, $Restricted = 2 is level 3 -- if the field doesn't exist, I think it's treated as level 1). Here's a link to the code I wrote:
http://www.nsftools.com/tips/APITips.htm#agentrestrictionlist
Hope that helps someone out there.
- Julian